/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.dao;

import br.com.classes.Caixa;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Kauane
 */
public class CaixaDao extends Conecta {

    Connection con = null;

    public CaixaDao() {
        con = Conecta.getConnection();
    }

//    public int UltimoCodCaixa() {
//        int cod = 0;
//        try {
//
//            String sql = "select max(cod_caixa) + 1 as codigo from caixa";
//            PreparedStatement ps = con.prepareStatement(sql);
//            ResultSet rs = ps.executeQuery();
//
//            while (rs.next()) {
//                cod = rs.getInt("codigo");
//            }
//
//        } catch (SQLException e) {
//            System.out.println(e.getMessage());
//
//        }
//        return cod;
//    }
    public void CadastrarCaixa(Caixa c) throws Exception {
        String sql = ("INSERT INTO caixa values(null,?,?,?,?,?,?,?,?)");
        PreparedStatement prep = con.prepareStatement(sql);

        prep.setString(1, c.getCaixa());
        prep.setString(2, c.getCxRazaoSocial());
        prep.setString(3, c.getCxEndereco());
        prep.setString(4, c.getCxCidade());
        prep.setString(5, c.getCxRegistro());
        prep.setString(6, c.getCxRespLegal());
        prep.setString(7, c.getCxContador());
        prep.setString(8, c.getCxNomeEmp());
        prep.execute();
        
    }

    public Caixa PesquisarCaixa(int codigo_caixa) {
        Caixa c = null;
        try {
            String sql = "select * from caixa where cod_caixa=?";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setInt(1, codigo_caixa);

            ResultSet rs = ps.executeQuery();

            while (rs.next()) {
                c = new Caixa();
                c.setCaixa(rs.getString("nome_caixa"));
                c.setCxRazaoSocial(rs.getString("CxRazaoSocial"));
                c.setCxEndereco(rs.getString("CxEndereco"));
                c.setCxCidade(rs.getString("CxCidade"));
                c.setCxRegistro(rs.getString("CxRegistro"));
                c.setCxRespLegal(rs.getString("CxRespLegal"));
                c.setCxContador(rs.getString("CxContador"));
                c.setCxNomeEmp(rs.getString("CxNomeEmp"));

            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());

        }
        return c;
    }

    public void DeletarCaixa(Caixa c) throws Exception {

        String sql = ("delete from caixa where nome_caixa = ?");
        PreparedStatement prep = con.prepareStatement(sql);

        prep.setString(1, c.getCaixa());
        prep.execute();

    }

    public void AlterarCaixa(Caixa c) throws Exception {
        try {
            String sql = ("update caixa SET nome_caixa = ?,CxRazaoSocial=?,CxEndereco=?,CxCidade=?,CxRegistro=?,CxRespLegal=?,CxContador=?,CxNomeEmp=? WHERE cod_caixa =?");
            PreparedStatement ps = con.prepareStatement(sql);

            ps.setString(1, c.getCaixa());
            ps.setString(2, c.getCxRazaoSocial());
            ps.setString(3, c.getCxEndereco());
            ps.setString(4, c.getCxCidade());
            ps.setString(5, c.getCxRegistro());
            ps.setString(6, c.getCxRespLegal());
            ps.setString(7, c.getCxContador());
            ps.setString(8, c.getCxNomeEmp());
            ps.setInt(9, c.getCod_caixa());

            ps.execute();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    public List<Caixa> ProcurarCaixaLetra(String caixa) {

        List<Caixa> lista = new ArrayList<Caixa>();
        try {
            String sql = "select * from caixa where nome_caixa like ?";
            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.setString(1, "%" + caixa + "%");
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                Caixa c = new Caixa();
                c.setCod_caixa(rs.getInt("cod_caixa"));
                c.setCaixa(rs.getString("nome_caixa"));
                c.setCxRazaoSocial(rs.getString("CxRazaoSocial"));
                c.setCxEndereco(rs.getString("CxEndereco"));
                c.setCxCidade(rs.getString("CxCidade"));
                c.setCxRegistro(rs.getString("CxRegistro"));
                c.setCxRespLegal(rs.getString("CxRespLegal"));
                c.setCxContador(rs.getString("CxContador"));
                c.setCxNomeEmp(rs.getString("CxNomeEmp"));
                lista.add(c);
            }

        } catch (SQLException ex) {
        }
        return lista;

    }

    public List<Caixa> BuscarLimite(int num) {

        List<Caixa> lista = new ArrayList<Caixa>();
        try {

            String sql = "select * from caixa order by cod_caixa desc limit ?,10";
            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.setInt(1, num);
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                Caixa c = new Caixa();
                c.setCod_caixa(rs.getInt("cod_caixa"));
                c.setCaixa(rs.getString("nome_caixa"));
                c.setCxRazaoSocial(rs.getString("CxRazaoSocial"));
                c.setCxEndereco(rs.getString("CxEndereco"));
                c.setCxCidade(rs.getString("CxCidade"));
                c.setCxRegistro(rs.getString("CxRegistro"));
                c.setCxRespLegal(rs.getString("CxRespLegal"));
                c.setCxContador(rs.getString("CxContador"));
                c.setCxNomeEmp(rs.getString("CxNomeEmp"));
                lista.add(c);
            }

        } catch (SQLException ex) {
        }

        return lista;
    }

    public List<Caixa> ListarCaixa() {

        List<Caixa> lista = new ArrayList<Caixa>();
        try {

            String sql = "select * from caixa order by cod_caixa desc";
            PreparedStatement stmt = con.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                Caixa caixa = new Caixa();
                caixa.setCod_caixa(rs.getInt("cod_caixa"));
                caixa.setCaixa(rs.getString("nome_caixa"));
                caixa.setCxRazaoSocial(rs.getString("CxRazaoSocial"));
                caixa.setCxEndereco(rs.getString("CxEndereco"));
                caixa.setCxCidade(rs.getString("CxCidade"));
                caixa.setCxRegistro(rs.getString("CxRegistro"));
                caixa.setCxRespLegal(rs.getString("CxRespLegal"));
                caixa.setCxContador(rs.getString("CxContador"));
                caixa.setCxNomeEmp(rs.getString("CxNomeEmp"));
                lista.add(caixa);
            }

        } catch (SQLException ex) {
        }
        return lista;

    }
}
